﻿// 为了方便管理，就将[Code]区段单独拿出来了
// innosetup 支持的颜色值
// clBlack（黑色），clMaroon（暗红），clGreen（绿色），clOlive（橄榄绿），
// clNavy（深蓝），clPurple（紫色），clTeal（深青），clGray（灰色），
// clSilver（浅灰），clRed（红色），clLime（浅绿），clYellow（黄色），
// clBlue （蓝色），clFuchsia（紫红），clAqua（青绿），clWhite（白色）。
// 引入botva2的函数声明
// {app} -> 安装目录( 例如： 'D:\Program Files\AnycubicPhotonWorkshop' )
//命令行参数传递：  .\AnycubicPhotonWorkshop_package.exe /auto_install 1 /auto_install_path 'D:\Program Files\AnycubicPhotonWorkshop'
var
    language: String;
    b_auto_install: BOOLEAN;            //0(false):手动安装; 1(true):自动安装 from command line paras
    p_auto_install: String;             //自动安装路径, b_auto_install = 1时有效 from command line paras
    auto_install_version_info: String;   //自动安装带的信息 from command line paras

#include ".\botva2.iss"
#include ".\event_handle.iss"
#include ".\main_win.iss"

//重载安装程序初始化函数，判断是否已经安装新版本，是则禁止安装
FUNCTION InitializeSetup() : BOOLEAN;
var
    i: Integer;
BEGIN
    language:= ActiveLanguage();
    b_auto_install:= false;
    p_auto_install:= 'D:\Program Files\AnycubicPhotonWorkshop';

    //获取命令行参数
    for i:= 0 to ParamCount do
    begin
        //msgbox(ParamStr(i), mbInformation, MB_OK);
        if CompareText(ParamStr(i), '/auto_install') = 0 then
        begin
            Inc(i);
            b_auto_install := ParamStr(i) = '1';
        end
        else if CompareText(ParamStr(i), '/auto_install_path') = 0 then
        begin
            Inc(i);
            p_auto_install := ParamStr(i);
        end
        else if CompareText(ParamStr(i), '/contents') = 0 then
        begin
            Inc(i);
            auto_install_version_info := 'contents="' + ParamStr(i) + '"';
        end;
    end;
    //auto_install_version_info := '"' + 'This is a rerwerwfsdfsdf fsdf sd  sdf sdftest info  ==== ' + '"';
    //b_auto_install:= true;
    Result:= true;
END;

//重载安装程序初始化函数（和上边那个不一样），进行初始化操作
procedure InitializeWizard();
begin
    InitData();
    InitUI();
end;

//安装程序销毁时会调用这个函数
PROCEDURE DeinitializeSetup();
BEGIN
    //msgbox('DeinitializeSetup is called', mbInformation, MB_OK);         `
    release_installer();
    ExitProcess(0);
END;
